Technical Field
This disclosure relates generally to computer networks and more specifically to systems and methods for delegating content delivery to local content delivery servers.
Description of Related Art
Content Delivery Networks (CDNs), also known as content distribution networks, can include large distributed systems of servers that store content and deliver that content to end users (clients) with high availability and high performance. A CDN service can be effective in speeding the delivery of content, especially in situations when end users are located far from the origin of the content. Thus, the closer a CDN server is to a particular end user both geographically and topologically, the faster the web content will be delivered to that user. The CDN technology also can allow for protection from large surges in web traffic.
For example, when an end user requests a webpage that is part of the content served by a large CDN, the CDN will redirect the user's request from the originating site's server to a server in the CDN that is closest to the end user for further delivery of the requested web content. Redirection can be done via HTTP, via the Domain Name System, or by other means. Currently, CDNs are very popular for delivering a wide range of content including static web content, dynamic web content, mobile content, video, audio, games, and so forth.
CDNs typically rely on the Domain Name System (DNS) to resolve domain names in order to direct a client to the most suitable and easily reachable server for downloading the requested content. The DNS is a hierarchically distributed naming system that resolves domain names assigned to Internet Protocol (IP) addresses. DNS functionality is typically implemented by name servers. For this reason, these servers are called DNS name servers or simply DNS servers. The DNS servers can implement a network service of translation (also commonly referred to as “resolution”) of human-memorable domain names, such as www.example.com, into the corresponding numeric IP addresses.
Because of the scale of the Internet, the DNS includes recursive DNS servers and authoritative DNS servers. The recursive DNS server may answer a client query using a previously cached entry in its database. If the recursive server cannot answer the client query because the database does not contain the entry, the recursive server can recursively query authoritative DNS servers (proceeding from the root of the DNS tree down) until the answer is found and the domain name is resolved. This is known as a recursive query or recursive lookup. In other words, recursive DNS servers are responsible for providing the ultimate result (often an IP address) of a corresponding domain name to a requesting client.
As already mentioned above, the recursive DNS servers can cache DNS records from authoritative name servers, and these cached records are checked when a translation request is received. When a recursive DNS server does not have the requested DNS record cached, it can start a recursive process of searching through the authoritative DNS hierarchy in order to complete the translation process. Authoritative DNS servers are responsible for providing answers to recursive DNS servers. The answers of authoritative DNS servers can include IP addresses associated with the domain name and, optionally, other DNS records.